/**
 * 基础数据接口
 * 所有表格数据实体都应实现此接口
 * 
 * id 为可选的字符串，用于唯一标识实体
 */
export interface BaseData {
  createdTime?: number;
  id?: string;
  name?: string;
  label?: string;
}

/**
 * 比较两个 ID 是否相等
 */
export function hasIdEquals(id1: string | undefined, id2: string | undefined): boolean {
  return id1 === id2;
}

/**
 * 根据 ID 列表对实体数组进行排序
 */
export function sortEntitiesByIds<T extends BaseData>(entities: T[], entityIds: string[]): T[] {
  entities.sort((entity1, entity2) => {
    const id1 = entity1.id || '';
    const id2 = entity2.id || '';
    const index1 = entityIds.indexOf(id1);
    const index2 = entityIds.indexOf(id2);
    return index1 - index2;
  });
  return entities;
}